/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package redman;

/**
 *
 * @author aline
 */
import java.lang.*;
import java.io.*;
import java.net.*;


public class TestClient implements Runnable{
private static String cmd;
private static int valor;
private static int resposta;
private String myName;

public TestClient(String myName){
    this.myName = myName;
}
//Buffer de sicronização para envio de mensagem
public static StringBuffer toSend = new StringBuffer("");
//Método que sincroniza os envios de mensagem
public static void oi(){
        System.out.println(resposta);
    }
private static void sendString(String s) {
     synchronized (toSend) {
        toSend.append(s + "\n");
     }
  }
public static void formatarMsg(String msg){
int cont;
for (cont = 0; cont < msg.length(); cont++) {
char a = msg.charAt(cont);
if(Character.isDigit(a)) break;
}
cmd = msg.substring(0, cont);
valor = Integer.parseInt(msg.substring(cont++));

if(cmd.equals("teste")){
    resposta = valor * 2;
}
}

    @Override
   public void run() {
      try {

    //Variaveis de informacao da conexao
    String ipHost;
    String port;
    ipHost = "localhost";
    port = "1237";

    //Componentes do TCP
         Socket socket = new Socket(ipHost, Integer.parseInt(port));
         BufferedReader in = new BufferedReader(new
                 InputStreamReader(socket.getInputStream()));
         PrintWriter out = new PrintWriter(
        socket.getOutputStream(), true);

         //Enviou da mensagem para o servidor
         sendString(myName);
if (toSend.length() != 0) {
               out.print(toSend); out.flush();
               toSend.setLength(0);
            }
    while(true){
    //Espera da mesnagem do servidor
    while(!in.ready()){}
    formatarMsg(in.readLine());

         //Enviou da mensagem para o servidor
         sendString(""+resposta);
if (toSend.length() != 0) {
               out.print(toSend); out.flush();
               toSend.setLength(0);
            }
          }

//Componentes do TCP sendo fechados
         //out.close();
         //in.close();
         //socket.close();
      }
      catch(Exception e) {
    //Mensagem caso algum erro ocorra
         System.out.print("Falha\n");
      }
   }
}
